package com.zmj.sy.mom.srv.aps.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zmj.sy.mom.srv.aps.bean.entity.order.ApsBatch;
import com.zmj.sy.mom.srv.aps.bean.entity.order.ApsDetailWeekday;
import com.zmj.sy.mom.srv.aps.bean.vo.completeReport.AssemOrderVo;
import com.zmj.sy.mom.srv.aps.bean.vo.completeReport.CompleteReportBomInfo;
import com.zmj.sy.mom.srv.aps.bean.vo.completeReport.CompleteReportPhaseFinishedInfo;
import com.zmj.sy.mom.srv.aps.bean.vo.completeReport.IntegralityVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

@Mapper
public interface CompleteReportMapper extends BaseMapper<ApsBatch> {
    /**
     * @Description: /获取订单下所有组件
     *
     * @author: hejiahui
     * @since: 2024/9/6 10:47
     */
    List<AssemOrderVo> getAssBomInfo(@Param(Constants.WRAPPER) QueryWrapper<?> query);
    /**
     * @Description: 获取工序完成情况
     *
     * @author: hejiahui
     * @since: 2024/9/6 10:47
     */
    List<CompleteReportPhaseFinishedInfo> getPhaseFinishedInfo(@Param(Constants.WRAPPER) QueryWrapper<?> cuttingQuery);
    /**
     * @Description: 获取bom信息
     *
     * @author: hejiahui
     * @since: 2024/9/6 18:09
     */
    List<CompleteReportBomInfo> getBomInfo(@Param(Constants.WRAPPER)QueryWrapper<?> infoQuery);
    /**
     * @Description: 零组件整体完成情况
     *
     * @author: hejiahui
     * @since: 2024/9/7 10:03
     */
    List<Map<String, Object>> getZeroFinishedInfo(@Param(Constants.WRAPPER) QueryWrapper<?> infoQuery);
    /**
     * @Description: 获取tb_order_bom表信息
     * 
     * @author: hejiahui
     * @since: 2024/9/7 16:54
     */
    List<Map<String, Object>> getOrderBom(@Param(Constants.WRAPPER) QueryWrapper<?> orderBomQuery);
    List<Map<String, Object>> getOrderBom2(@Param(Constants.WRAPPER) QueryWrapper<?> orderBomQuery);
    /**
     * @Description: 切割齐套
     *
     * @author: hejiahui
     * @since: 2024/9/9 9:12
     */
    List<IntegralityVo> getCuttingInfo( @Param(Constants.WRAPPER) QueryWrapper<?> orderBomQuery);
    /**
     * @Description: 加工齐套
     *
     * @author: hejiahui
     * @since: 2024/9/9 9:45
     */
    List<IntegralityVo> getProcessInfo(@Param(Constants.WRAPPER) QueryWrapper<?> processWrapper);
    /**
     * @Description: 加工齐套,不分包
     *
     * @author: hejiahui
     * @since: 2024/9/9 9:45
     */
    List<IntegralityVo> getProcessInfoNoPkg(@Param(Constants.WRAPPER) QueryWrapper<?> processWrapper);
    /**
     * @Description: 获取工序完成情况详情
     *
     * @author: hejiahui
     * @since: 2024/9/6 10:47
     */
    List<Map<String, Object>> getPhaseFinishedInfoDetail(@Param(Constants.WRAPPER) QueryWrapper<?> cuttingQuery);
    /**
     * @Description: 零件领料详情
     *
     * @author: hejiahui
     * @since: 2024/10/31 11:37
     */
    List<Map<String, Object>> getPartPickList(@Param(Constants.WRAPPER)QueryWrapper<?> partPickQuery);
    /**
     * @Description: 外购件齐套
     *
     * @author: hejiahui
     * @since: 2024/10/31 14:58
     */
    List<IntegralityVo> getWlInfo(@Param(Constants.WRAPPER) QueryWrapper<?> wlWrapper);
    /**
     * @Description: 套料信息
     *
     * @author: hejiahui
     * @since: 2024/12/26 10:34
     */
    List<Map<String, Object>> getNestInfo(@Param(Constants.WRAPPER) QueryWrapper<?> nestWrapper);

    /**
     * @Description: 切割
     *
     * @author: hejiahui
     * @since: 2024/12/26 10:37
     */
    List<Map<String, Object>> getCuttingListInfo(@Param(Constants.WRAPPER) QueryWrapper<?> cuttingWrapper);

    /**
     * @Description: 分拣
     *
     * @author: hejiahui
     * @since: 2024/12/26 10:37
     */
    List<Map<String, Object>> getSortInfo(@Param(Constants.WRAPPER)QueryWrapper<?> sortWrapper);
    /**
     * @Description: 获取表里所有钢板
     *
     * @author: hejiahui
     * @since: 2025/1/15 14:36
     */
    List<Map<String, Object>> getAllPlateNo(@Param(Constants.WRAPPER) QueryWrapper<?> queryWrapper);
    /**
     * @Description: 获取nest_part表数据
     *
     * @author: hejiahui
     * @since: 2025/1/15 14:44
     */
    List<Map<String, Object>> getNestPartPlateInfo(@Param(Constants.WRAPPER) QueryWrapper<?> queryWrapper);

    /**
     * @Description: 获取record表数据
     * @author: hejiahui
     * @since: 2025/1/15 14:46
     */
    List<Map<String, Object>> getRecordPlateInfo(@Param(Constants.WRAPPER) QueryWrapper<?> queryWrapper);
    /**
     * @Description: 获取record表其中一条
     *
     * @author: hejiahui
     * @since: 2025/1/15 14:57
     */
    Map<String, Object> getRecordPlateOne(@Param(Constants.WRAPPER)QueryWrapper<?> recordWrapper);
    /**
     * @Description: 领料齐套
     *
     * @author: hejiahui
     * @since: 2025/1/20 16:30
     */
    List<IntegralityVo> getLlInfo(@Param(Constants.WRAPPER)QueryWrapper<?> cuttingWrapper);
}
